A NAND-Flash memory is one type of memory used in many different applications. Compared with NOR-Flash memory, the NAND-Flash has advantages of low cost and high capacity. NAND-Flash is widely used in many different applications such as MP3 players, digital cameras and thumb drives. A SmartMedia™ Card has the same signal name and timing with an 8-bit NAND-Flash memory. (“SmartMedia” is a trademark of Toshiba Corporation, Tokyo, Japan.) Usually, a SmartMedia™ card is just a NAND-Flash with a card package. Unlike NOR-Flash or ROM, interface timing at a NAND-Flash is complex. Since the NAND-flash memory does not have explicit address pins, a read access is not straightforward. A series of address and command cycles with proper timing are issued before data can be read out of the NAND-Flash memory. Furthermore, different types of NAND-Flash memories have different number of address cycles and command sequences.
Due to the variable attributes of the NAND-Flash architecture, no clear way exists to read the contents of any particular NAND-Flash memory directly. A central processing unit (CPU) conventionally controls the access cycles to the NAND-Flash memory once the interface parameters are known. Automated detection of the interface parameters for the particular NAND-Flash memory typically involves software or firmware-based solutions executed by the CPU. In another conventional approach, a NAND-Flash device ID can be used to detect the NAND-Flash manufacture and type. Once the manufacture and type are known, the CPU can read the appropriate interface parameters from a database stored in another memory. Therefore, based on the current technology, the CPU cannot be booted directly from NAND-Flash. As a result, additional external ROM or NOR-Flash memory is commonly implemented to boot the CPU so that the CPU can detect or read the NAND-Flash memory interface parameters.
The CPU and the extra memory add to the cost and complexity of the application system. The software or firmware for parameter detection increases a complexity of the application system. Parameter detection is relatively slow. A boot-up speed for the software/firmware-based NAND-Flash boot-up approaches are much slower than a pure hardware-based solution. Furthermore, new NAND-Flash designs cannot be accommodated without changing the software, firmware or database.